/* 
    动机：
        1. 直接修改变量很麻烦，最好的办法是现以函数的形式封装所有对该数据的访问；
        2. 封装能提供改一个清晰的观测点，可以由此监控数据的变化和使用；
        3. 封装数据很重要，但不可变数据更重要。

    做法：
        1. 创建封装函数，在其中访问和更新变量值；
        2. 执行静态检查；
        3. 逐一修改使用该变量的代码，将其改为调用合适的封装函数。每次替换后执行测试；
        4. 限制变量的可见性；
            -- 有时没办法阻止直接访问变量，可以试试将变量改名，再执行测试，找出仍在直接使用该变量的代码。
        5. 测试；
        6. 如果变量的值是一个记录，考虑使用【封装记录】。

*/
// let defaultOwner = {firstName:"Martin",lastName:"Fowler"};

// spaceship.owner = defaultOwner;

// defaultOwner = {firstName:"Rebeca",lastName:Parsons};
/************************************************** */
// function getDefaultOwner(){
//     return defaultOwner;
// }

// function setDefaultOwner(arg){
//     defaultOwner = arg;
// }

import {getDefaultOwner} from "./6_封装变量_demo1_data.js"
import {setDefaultOwner} from "./6_封装变量_demo1_data.js"

var spaceship;
spaceship.owner = DefaultOwner();
setDefaultOwner({firstName:"Rebeca",lastName:"Parsons"});